---
title: "Interactive SDM Maps"
output: html_notebook
---

```{r message=FALSE, warning=FALSE, include=FALSE}
library(here)
library(raster)
library(leaflet)
library(leafem)
library(htmltools)
library(htmlwidgets)
```


```{r include=FALSE}
Leipoa_ocellata <- raster(here("input/Leipoa_ocellata.tif"))
```


```{r include=FALSE}
tsf <- raster(here("input/FireRasts/TSF.tif"))

ffreq <- raster(here("input/FireRasts/FireFreq.tif"))
```


```{r include=FALSE}
pal <- colorNumeric(palette  = "viridis",
                    values(Leipoa_ocellata),
                    na.color = "transparent")

pal2 <- colorNumeric(palette  = "YlOrRd",
                     reverse  = T,
                     values(tsf),
                     na.color = "transparent")

pal3 <- colorNumeric(palette  = "inferno",
                     values(ffreq),
                     na.color = "transparent")
```


```{r message=FALSE, warning=FALSE, include=FALSE}
L_ocellata <- leaflet(options = leafletOptions(minZoom = 5)) %>%                # Set extent of zoom.
  
  addTiles() %>%                                                                # Add basemap.
  
  addRasterImage(Leipoa_ocellata,                                               # Add SDM.
                 colors   = pal,
                 group    = "Leipoa ocellata",
                 layerId  = "Leipoa ocellata", 
                 opacity  = 0.8,
                 maxBytes = 11 * 1024 * 1024) %>%
  
  addRasterImage(tsf,                                                           # Add TSF.
                 colors   = pal2,
                 group    = "TSF", 
                 layerId  = "TSF", 
                 opacity  = 0.8,
                 maxBytes = 11 * 1024 * 1024) %>%
  
  addRasterImage(ffreq,                                                         # Add fire frequency.
                 colors   = pal3,
                 group    = "Fire Freq", 
                 layerId  = "Fire Freq", 
                 opacity  = 0.8,
                 maxBytes = 11 * 1024 * 1024) %>%
  
  addLegend(pal    = pal,                                                       # Add legend for each layer.
            group  = "Leipoa ocellata", 
            values = values(Leipoa_ocellata),
            title  = "Habitat<br/>Suitability") %>%
  
  addLegend(pal    = pal2, 
            group  = "TSF", 
            values = values(tsf),
            title  = "TSF (yrs)") %>%
  
  addLegend(pal    = pal3, 
            group  = "Fire Freq", 
            values = values(ffreq),
            title  = "No. Fires<br/>(50 yrs)") %>%
  
  addMeasure(position          = "bottomleft",                                  # Add measuring tool.
             primaryLengthUnit = "meters",
             primaryAreaUnit   = "sqmeters",
             activeColor       = "#3D535D",
             completedColor    = "#7D4479") %>%
  
  addEasyButton(easyButton(icon    = "fa-globe",                                # Add zoom to full extent button.
                           title   = "Zoom to Level 6",
                           onClick = JS("function(btn, map){ map.setZoom(6); }"))) %>%
  
  addEasyButton(easyButton(icon    = "fa-crosshairs",                           # Add zoom to your location button.
                           title   = "Locate Me",
                           onClick = JS("function(btn, map){ map.locate({setView: true}); }"))) %>% 
  
  addLayersControl(overlayGroups = c("Leipoa ocellata",                         # To turn layers on and off.
                                     "TSF",
                                     "Fire Freq"),
                   position      = "bottomright") #%>% 

# addImageQuery(Leipoa_ocellata,
#               group   = "Leipoa ocellata",
#               layerId = "Leipoa ocellata") %>% 
# 
# addImageQuery(tsf,
#               group   = "TSF",
#               layerId = "TSF") %>% 
# 
# addImageQuery(ffreq,
#               group   = "Fire Freq",
#               layerId = "Fire Freq") %>% 
      
# garnishMap(addImageQuery,
#            x        = Leipoa_ocellata,
#            group    = "Leipoa ocellata",
#            layerId  = "Leipoa ocellata",
#            prefix   = " ",
#            position = "bottomleft")

```

```{r echo=FALSE}
L_ocellata
```


